import java.util.Locale;
import java.util.Scanner;

/**
 * # 驼峰转蛇形
 * camelToSnake("MyName") # 转换后的结果：my_name
 */
public class Camel {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = "";
        System.out.println("请输入驼峰字符串：");
        String instr = scan.next();
        String[] strarr = instr.split("");  //转成字符串数组

        for (int i = 0; i < strarr.length; i++) {
            char[] chs = strarr[i].toCharArray();  //转成字符数组
            if (i == 0) {  //如果首字母大写的话，可以转小写，但是不加 _ ,所以跳过本次循环
                continue;
            }

            if (Character.isUpperCase(chs[0])) {  //如果是大写字母
                strarr[i] = "_" + strarr[i];  //就在大写字母前加 _
            }
        }

        for (String item : strarr) {
            str += item;    //将小写字母、大写字母_拼接起来
        }
        System.out.println(str.toLowerCase(Locale.ROOT));


        //只能转一次，如myName——my_name，不能转两次，如myNameGender
//        Scanner scan = new Scanner(System.in);
//        System.out.println("请输入驼峰字符串：");
//        String instr = scan.next();
//        char[] ch = instr.toCharArray();
//
//        for (int i = 0; i < ch.length; i++) {
//            String s = Character.toString(ch[i]);
//            if (i == 0) {
//                continue;
//            }
//
//            if (Character.isUpperCase(ch[i])) {
//                String str = instr.substring(0, i) + "_" + s.toLowerCase() + instr.substring(i + 1);
//                System.out.println(str);
//            }
//        }


    }
}
